1
인트로스펙션의 힘
AI035Lesson 15
00:00

루비에서 코드는 단순한 정적 스크립트가 아닙니다—그것은 생동감 있는 시스템입니다. 인트로스펙션 은 객체가 '자기 자신에 대한 지식'을 갖게 해주는 초강력 기능으로, 객체를 검색 가능한 기능 맵으로 바꿔줍니다. 심지어 즉시 값 정수와 같은 즉시 값도 런타임 시 그 출신과 기능을 묻고 조사할 수 있습니다.

1. 생동하는 인터페이스

다음 메서드를 호출함으로써 obj.methods(regular=true)는 객체의 전체 기능 목록에 접근할 수 있습니다. 간단한 범위 객체(r = 1..10)는 엄청난 68개의 고유한 메서드를 보여주며, 이는 ObjectEnumerable 믹스인에서 유래한 풍부한 상속 구조를 반영합니다.

사이드바 [A]ArrayAtan2AutoLoad클래스 배열 < 객체Enumerable메서드 서명: Array#pack입력: 템플릿 문자열출력: 이진 문자열

2. 동적 탐색

메서드는 런타임 시 게이트키퍼 역할을 하며, respond_to? 다이너믹 타이핑을 가능하게 합니다. '당신은 무엇입니까?'라는 질문 대신, '당신은 이것을 할 수 있습니까?'라고 묻는 것입니다. 이 유연성은 실제 기능에 따라 프로그램이 적응하도록 해주며, 예를 들어 문자열이 할당 유사 기호( 다이너믹 타이핑)에 응답하는지 여부 또는 숫자 값이 특정한=계층 쿼리 계층 쿼리입니다.

3. 메타 문서화 다리

예를 들어 RDoc 는 이러한 기능을 사용해 자동으로 알파벳 순 정렬 레이아웃 과 메서드 서명 블록 다이어그램을 생성합니다. 모듈 상수와 인스턴스 변수를 조회함으로써 개발자는 네임스페이스 구조 전체를 프로그래밍적으로 탐색할 수 있으며, 소스 파일과 실행 중인 코드 사이의 격차를 메울 수 있습니다. 모듈 상수인스턴스 변수, developers can navigate the entire namespace structure programmatically, bridging the gap between source files and active execution.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>